//#include<iostream>
//using namespace std;
//class Stack
//{
//public:
//	Stack(int capacity = 4)
//	{
//		cout << "Stack(int capacity = 4)" << endl;
//		_a = new int[capacity];
//		_top = 0;
//		_capacity = capacity;
//	}
//	~Stack()
//	{
//		cout << "~Stack()" << endl;
//		delete[] _a;
//		_a = nullptr;
//		_top = _capacity = 0;
//	}
//private:
//	int* _a;
//	int _top;
//	int _capacity;
//};
//void Swap(char& left, char& right)
//{
//	char tmp = left;
//	left = right;
//	right = tmp;
//}
//void Swap(int& left, int& right)
//{
//	int tmp = left;
//	left = right;
//	right = tmp;
//}
//void Swap(double& left, double& right)
//{
//	double tmp = left;
//	left = right;
//	right = tmp;
//}
//template<typename T>
//void Swap(T& left, T& right)
//{
//	T tmp = left;
//	left = right;
//	right = tmp;
//}
//template<class T>
//T* func(int n)
//{
//	return new T[n];
//}
//template<class T>
//class Stack
//{
//public:
//
//private:
//	T* _a;
//	int _top;
//	int _capacity;
//};
//int main()
//{
//	//Stack* p1 = new Stack[30];
//	//delete[] p1;
//	//int* p = func<int>(10);
//
//	Stack<int> st1;
//	Stack<char> st2;
//
//
//	return 0;
//}

#include<iostream>
#include<string>
using namespace std;

int main()
{
	string s1;
	string s2("hello world");
	string s3 = s2;
	string s4(s2);
	cout << s1 << endl;
	cout << s2 << endl;
	cout << s3 << endl;
	cout << s4 << endl;
	return 0;
}








